package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.EmpQueryParam;
import com.itheima.pojo.PageResult;
import com.itheima.pojo.Result;
import com.itheima.service.EmpService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.logging.Logger;
@Slf4j
@RequestMapping("/emps")
@RestController

public class EmpController {
    private static final Logger logger = Logger.getLogger(EmpController.class.getName());
    @Autowired
   private EmpService empService;


//    @GetMapping
//    public Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10")Integer
//                       pageSize,String name,Integer gender,
//                       @DateTimeFormat(pattern = "yyyy-MM-dd" )LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd" )LocalDate end) {
//        PageResult<Emp> pageResult = empService.page(page,pageSize,name,gender,begin,end);
//        return Result.success(pageResult);
//    }
//    @GetMapping
//    public Result page(Integer page, Integer pageSize) {
//        PageResult<Emp> pageResult = empService.page(page,pageSize);
//        return Result.success(pageResult);
//    }
    //根据条件查询
        @GetMapping
    public Result page(EmpQueryParam empQueryParam) {
            log.info("根据条件查询部门: {}",empQueryParam);
        PageResult<Emp> pageResult = empService.page(empQueryParam);
        return Result.success(pageResult);
    }
    /*新增员工*/
    @PostMapping
    public Result add(@RequestBody Emp emp) {
        log.info("添加员工: {}",emp);
        empService.save(emp);
        return Result.success();
    }
    @DeleteMapping
    public Result delete(@RequestParam List<Integer> ids)
    {
        log.info("删除员工: {}",ids);
        empService.delete(ids);
        return Result.success();
    }
    @GetMapping("/{id}")
    public Result getInfo(@PathVariable Integer id) {
        log.info("跟据id查询员工: {}",id);
       Emp emp =  empService.getInfo(id);
        return Result.success(emp);
    }
    @PutMapping
    public Result update(@RequestBody Emp emp) {
        log.info("修改员工基本信息 : {}",emp);
        empService.update(emp);
        return  Result.success();
    }
}